home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / os / mtos.doc < prev    next >
Text File  |  1995-04-22  |  11KB  |  180 lines

  1.  
  2. NOTE: The first uploaded ARC of MTOS
  3. contained compaction errors that
  4. PREVENTD usability.  This has been
  5. REPAIRED in this version.
  6.  
  7. John Nagy, CHAOS BBS (517) 371-1106
  8.  
  9.  
  10.  
  11.   M.ulti-T.asking O.perating S.ystem
  12.               M.T.O.S.
  13.                MT-OS
  14.                MTOS
  15.     Copyright (C) 1987 by Tom Hunt
  16.  
  17.          (beta test version)
  18.               12-25-87
  19. (Merry Christmas Atarians, from me to you!)
  20.  
  21.  MTOS is a revolutionary new O.S for Atari 8-bit computers with 256k (or more).
  22. It is actually a O.S. extention, since it works with the resident ROM based
  23. Atari O.S., and with DOS. With MTOS installed, the multitasking environment
  24. is made available to the Atari owner
  25.  
  26.  This document is divided into the following sections,
  27.  
  28. WHAT MULTITASKING IS,
  29. WHAT MULTITASKING ISN'T,
  30. WHAT MTOS IS, AND WHAT IT CAN DO,
  31. WHAT MTOS ISN'T, AND WHAT IT CAN'T DO,
  32. GETTING STARTED,
  33. and SPECIAL NOTES.
  34.  
  35. If the subject of time-sharing/multitasking is new to you, then you should
  36. read the whole text. 
  37. _______________________________________________________________________________
  38. WHAT MULTITASKING IS
  39. _______________________________________________________________________________
  40.  Everyone seems to know a little about what multitasking is. Simply put,
  41. multitasking is a computer operating environment that allows more than one
  42. program to be run at the same time. There is a form of multitasking that
  43. occurs during the regular Atari computer functions. These are slices of time in
  44. which your program is interrupted by hardware signals, and system control is
  45. turned over to the O.S. for the purpose of performing system tasks. The VBI
  46. and DLI are two interrupts that you've probably heard about. During these
  47. interrupts, you can even make the O.S. perform some tasks that you've made
  48. provision for, by pointing the appropriate vector to point to your m.l.
  49. routine.
  50.  But the realm of multitasking is a realm whose domain has been traditionally
  51. the MINI and MAIN FRAME computers. These large computers are not only capable
  52. of multitasking, but are also capable of supporting the MULTI-USER environment.
  53. In a situation like this, individual users have a job (aka task, program,
  54. application) running on his/her assigned terminal. To each user, it appears
  55. as tho they have the sole use of the computer's resources. Before multiuser/  
  56. multitasking, users had to wait for their turn to use the computer. But using
  57. modern operating systems, time sharing is a common thing.      
  58.  Think about time being a pie, and time-sharing as slices of that pie. Each job
  59. is assigned a slice of the time pie. Some jobs get assigned bigger slices than 
  60. others, depending on their priority. So multitasking is a valuable asset if you
  61. want to do some word-processing, while another program is working on some other
  62. task in the background.
  63. _______________________________________________________________________________
  64. WHAT MULTITASKING ISN'T
  65. _______________________________________________________________________________
  66.  There is an old saying- "There ain't no such thing as a free lunch!". In other
  67. words, multitasking is system taxing! You can have one program hogging 100% of 
  68. the system's resources, or 2 programs sharing 50% of the system's resources,
  69. and so on... The pie never gets any bigger, you just cut the slices smaller.
  70. Plus, there is the O.S. overhead involved in the juggling. That is, each time
  71. a task's clock counts down to zero, the multitasker has to jump in there to do
  72. house-keeping to get things ready for the next task on the agenda. This house
  73. keeping eats up machine cycles, and might account fo 4% of the time pie with
  74. only 2 jobs running. With 3 jobs running, it goes up to 8%. With 6 jobs run-
  75. ning it goes up to a whopping 20%!! So, the more jobs you have running, the
  76. slower your programs will execute. A multitasking environment will not give
  77. you more processing power. It will only distribute processing among different
  78. jobs.
  79. _______________________________________________________________________________
  80. WHAT MTOS IS, AND WHAT IT CAN DO
  81. _______________________________________________________________________________
  82.  MTOS follows the discription about multitasking and time sharing. It allows
  83. the Atari computer owner to run up to 6 tasks at the same time. In the past,
  84. this kind of system environment was totaly unavailable to us. Now you can be
  85. using a word processor, flip to a basic game, flip to check on the progress
  86. of a program doing calculations, then flip back to your word processor. And
  87. all while each individual program is running! You can write your own programs
  88. that are compatable with MTOS, if a few simple rules are observed. These
  89. rules will be discussed later.
  90. _______________________________________________________________________________
  91. WHAT MTOS ISN'T, AND WHAT IT CANNOT DO
  92. _______________________________________________________________________________
  93.  As you add jobs to MTOS, each program will seem to run slower. For some
  94. programs, this is unacceptable. Other programs, like a word processor, spend
  95. alot of wasted time in loops, waiting for events to occur. Like waiting for
  96. a keypress. CPU time could be put to better use with MTOS.
  97.  The amount of memory available to each program is limited to 16k. The amount
  98. of screen ram allocated to each task is 1280 bytes, enough for GRAPHICS 0,1,
  99. 2,3,4,5,6,12, and 13. The programs running under MTOS must be "well behaved".
  100. That is to say that they shouldn't steal the VVBLKD vector, or the VKEYBD
  101. vectors. They shouldn't interfere with any memory above $7FFF, or from
  102. $2600-$3FFF. If you do so, you risk either interferring with another program,
  103. or at worse, a total system crash. Any free and legal addresses from
  104. $0000-$0500 (with the exception of the above mentioned vectors!) MAY be used!
  105.  If your program doesn't follow the rules, there is nothing to prevent it from
  106. doing so. On the CPU's used by large computers is a mask that will not
  107. allow any illegal addressing, and will return an error message to the user.
  108. The 6502 family of CPU's don't have this capability.
  109. M.l. programs must be assembeled to reside from $4000-$7FFF. Your booting
  110. game disks are definatly not MTOS compatable. These programming constraints
  111. of the multitasking environment are not out of the ordanary, since program-
  112. mers working on a mainframe computer must make "well behaved" programs, also.
  113. _______________________________________________________________________________
  114. GETTING STARTED
  115. _______________________________________________________________________________
  116.  There is a built-in keyboard buffer in MTOS. Sparta dos users need to KEY
  117. OFF before loading MTOS. MTOS may be used with or without BASIC, but if you
  118. want to mix running both m.l. and BASIC programs, be sure to boot without
  119. holding down the option key.
  120.  When MTOS initializes, you will be looking at the executor screen. The
  121. executor program (called Exec) will be running, and reserves task #0
  122. for itself. You should press a 1 to initialize a new task. After this,
  123. You can press a 1 to initialze a m.l. program, or a 2 to
  124. initialize a basic program. There is also a test mode that is initialized by
  125. a 3. You will be prompted for the amount of clocks to be assigned to the new
  126. task. 2-9 is the normal amount, but you can input any single character. That
  127. character will have $30 subtracted from it's atascii value, and the new value
  128. used for the amount of core clocks assinged to the new task. For instance, if
  129. you would input a F, the value 16 would be the amount of core clocks assigned.
  130. If you chose the m.l. option (2), you will be prompted for the filespec of
  131. the object file. A m.l. program has to obey the rules (see above)! The
  132. process will then be executed to get either the basic cartridge or your m.l.
  133. program initialized.
  134.  To detach from Exec, and attach to the job you just started, press 2 to
  135. (view) the job. You will be prompted for which job, which you choose from the
  136. ones listed on the Exec screen as being active. If you did everything as
  137. described above, you should now have your terminal attached to the new task,
  138. and if you chose basic, you should be looking at basic's familiar READY
  139. prompt. To detach and go back to Exec, have your